<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        h1{
            color: #ccc;
        }
    </style>
</head>
<body>
    <input type="text">
    <h1 style='height: 100px;'>javascript</h1>
    <div style='height: 80px;'>我是div</div> 
    <table>
        <tr>
            <td>1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>1</td>
            <td>1</td>
        </tr>
    </table>
  
    <script>
        // 复习以及流程控制语句 第三章开头函数声明

        // js是一门基于对象和事件驱动并具有安全性的脚本语言
        // 脚本语言不需要手动编译 ，解释执行
        // js动态类型，声明变量不用指定数据类型
        // js是弱类型，一个变量可以赋值不同类型的值
       
        // 变量和数据类型
        // Number String Boolean undefined NULL

        var myname = 'liu';
        console.log( typeof myname );

        var age = 30;
        console.log( typeof age );

        age = '100岁';
        console.log( typeof age );

        var isMan = 'ture';
        console.log( typeof isMan);
        
        var job;

        console.log('35'<'5'); //都是字符串不会转换成数值，会比较首字符 Ture
        console.log(Number('35')<Number('5'));  // 会强制转换且只能转换纯数字的字符串 否则会NaN

        // 从页面中获取的h1的高度为100px，并使用parseInt函数把px截掉。
        var height = document.getElementsByTagName('h1')[0].style.height;
        console.log(height);
        var newH = parseInt(height);
        console.log(newH);

        // var val = '';   //非空字符串不执行if内的语句
        var val = ' '; //空格 也是非空字符串故true
        if(val){
            console.log('可以登录');
        }

        //流程控制语句之for循环
        document.write('<table border="1">') //表格<table></table> border边框
            for(var i=0;i<4;i++){  //循环行<tr></tr>
                document.write('<tr>')  
                for(var j=0;j<4;j++){  //循环列 <td></td> 字符串带引号
                    document.write('<td>'+ i +'-' +j +'</td>')
                }
                document.write('</tr>')
            }
        document.write('</table>')

        // 九九乘法表
        document.write('<table border="1">')
            for(var i=1;i<10;i++){
                document.write('<tr>')
                for(var j=1;j<=i;j++){
                    document.write('<td>'+ i +'*' +j +'='+i*j+'</td>') //*带引号拼接 不带引号计算结果值
                }
                document.write('</tr>')
            }
        document.write('</table>')
      
        // 在页面中输出0--100之间的整数，每行显示8个
        // 在页面中输出0--200之间的能被7整除的整数，每行显示6个

        var j=0;
        for(var i=0; i<=200;i++) {
            if(i%7==0){
                document.write(i+' ');
                // (j>=6) && (j=0);      ???????????????????????
                j++;                
                if(j==6){
                    j=0;
                    document.write('<br>');
                } 
            }
        }


        //第一种函数声明形式 函数声明 可以先调用在声明
        // 使用function关键字定义函数
        function fn1(){
            console.log('函数fn1声明');
        }
        fn1();

        // 第二种函数声明形式 不可以先调用在声明
        // 使用函数表达式定义函数
        var fn2 = function () {
            console.log('函数fn2声明的另一种形式');
        }
        fn2();

        // 第三种函数声明形式 
        // 匿名函数
        // 函数定义时，函数名是可选的，即可以定义没有函数名的函数，
        // 但该函数必须马上执行或赋值给一个变量（或事件）
        (function(a){           
            console.log('匿名函数' + a);
            var a = 100;  //未定义undefined且未传参
        })(); //
        // 匿名函数undefined

        (function(a){           
            console.log('匿名函数' + a);
            var a = 100;  //未定义undefined但是下面()括号内传参'fn3' 
        })('fn3'); 
        // 匿名函数fn3

        (function(a){           
            var a = 100;  //定义且下面()括号内传参'fn3' 
            console.log('匿名函数' + a);  
        })('fn3'); 
        // 匿名函数100

        function printTable(row,col){
            document.write('<table border="1">')
                for(var i=0;i<row;i++){
                    document.write('<tr>')
                    for(var j=0;j<col;j++){
                        document.write('<td>'+ i +'-' +j +'</td>')
                    }
                    document.write('</tr>')
                }
            document.write('</table>')
        }
        printTable(4,4);

    </script>
</body>
</html>